package com.nicolas.pattern.interpreter.context;

/**
 * 循环命令节点类：非终结符表达式  
 * @author nicolas  2017年2月12日 -- 下午8:36:36
 */
public class LoopCommandNode extends Node {  
    private int number; //循环次数  
    private Node commandNode; //循环语句中的表达式  
      
    //解释循环命令  
    public void interpret(Context context) {  
        context.skipToken("LOOP");  
        number = context.currentNumber();  
        context.nextToken();  
        commandNode = new ExpressionNode(); //循环语句中的表达式  
        commandNode.interpret(context);  
    }  
      
    public void execute() {  
        for (int i=0;i<number;i++)  
            commandNode.execute();  
    }  
}
